“Smart devices” have become increasingly popular and can be found in many places, including cars, home security systems, and health monitors, among others. A smart device is an electronic device, generally connected to other devices or networks, that can operate to some extent interactively and to some extent autonomously. Smart devices include sensors that collect sensor or measurement data about their environments, and actuators that accept instructions or commands and perform actions in the physical world. Examples of sensors include smart smoke detectors, thermometers, heart rate monitors, continuous glucose meters, etc. Examples of actuators include smart fire alarms, sprinkler systems, insulin injector implantations, etc. Many smart devices are able to communicate with other devices over the Internet. Together, smart devices communicating with each other are popularly referred to as the Internet of Things (IoT). The terms “IoT device” and “smart device” are used interchangeably herein.
IoT systems have been developed that allow responses to be triggered by actuator device(s) upon the receipt of appropriate stimuli from sensor device(s). For example, a diabetes patient can connect his or her continuous glucose meter (CGM) into the cloud, where a rule may execute causing insulin to be injected via an insulin injector device implanted on the patient's body (the response) if the patient's blood sugar level as measured by the CGM crosses a threshold value (the stimulus). Such IoT systems currently exist as cloud-based PaaS (platform as a service) solutions or are run privately as middleware applications by, e.g., enterprises. In the cloud-based PaaS solutions, sensors and actuators are connected to a cloud, where the processing and storage of sensor data and the triggering of responses occurs. Popular cloud-based PaaS solutions include AWS® IoT Cloud, IBM Bluemix®, and Azure® IoT. The advantages of such cloud-based PaaS solutions include central management of devices in the cloud, scalability (any number of additional IoT devices may be connected to the cloud and rules added to the cloud), and fault tolerance. The disadvantages of cloud-based PaaS solutions include network latency and unreliability, as the triggering of responses may be delayed by network latency or not occur at all if the Internet connections of sensors and/or actuators are lost. Privacy is also a concern when sensitive data from a sensor belonging to one organization is sent to a “public” cloud that is managed by a different organization and shared by many tenants. There may also be legal limitations to sending confidential sensor data to the cloud. For example, some sensor data may not be allowed to be stored across certain geographic boundaries if the data is for government, defense, or financial institutions. This is an issue because the exact storage location of a public, multi-tenant cloud is usually not controlled by tenants.
In contrast to cloud-based PaaS solutions, private IoT systems ensure data privacy by using a local server or cluster of servers to process (and store) sensor data and to send instructions to actuators. Popular private IoT systems include ThingWorx®, Nextcloud® Box, and the open source Kaa. The disadvantages of private IoT systems include lack of scalability and difficulty incorporating new domain knowledge and sensors. Scalability may be an issue, as privately managed data centers are expensive to run and expand. For example, in an industrial automation scenario, the number of smart devices may increase exponentially as new smart devices are adopted, but a private IoT system may be not be scalable to incorporate such new smart devices. New domain knowledge and sensors are difficult to incorporate into private IoT systems, as doing so typically requires the rules engine of a local server or cluster of servers (of which there may be many) to be manually updated each time new domain knowledge or sensors are added. For example, a medical IoT system should be able to administer different combinations of drugs or interpret symptoms differently based on the latest research without changing existing sensors, but it can be difficult to continuously update a local rules engine in a private medical IoT system based on the latest research.